/*
package com.csi.bumblebee.service.websocketservice;

import org.springframework.stereotype.Component;

import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;


*/
/**
 * 将此类定义成一个WebSocket服务器端,并监听客户端访问服务器的URL地址
 *//*

@Component
@ServerEndpoint("/websocket/{userid}")
public class WebServerService {

    private Session session;

    //CopyOnWriteArraySet线程安全
    private final static CopyOnWriteArraySet<WebServerService> webSockets = new CopyOnWriteArraySet<>();

    //定义一个线程池
    private final static Map<String, Session> sessionPool = new HashMap<>();

    */
/**
     * 建立连接时触发
     *
     * @param session 会话
     * @param userid  请求连接服务器端的用户id
     *//*

    @OnOpen
    public void open(Session session, @PathParam("userid") String userid) {
        this.session = session;
        webSockets.add(this);
        sessionPool.put(userid, session);
        System.out.println("消息总数为:" + sessionPool.size());

    }

    */
/**
     * 接收客户端传输给服务器端的消息
     *
     * @param message 传入的消息
     *//*

    @OnMessage
    public void message(String message) {
        System.out.println("客户端消息:" + message);
    }

    */
/**
     * 当关闭会话时
     *//*

    @OnClose
    public void messageClose() {
        System.out.println("关闭了会话");
    }

    */
/**
     * 当会话连接遇到错误时
     *//*

//    @OnError
//    public void messageError(){
//        System.out.println("会话连接发生了错误");
//    }

    */
/**
     * 发送消息给对方时调用的方法
     *
     * @param userid  接收着的id
     * @param message 接收的内容
     * @param judgeState 判断用户的在线状态的标识符
     *//*

    public String sendOneMessage(String userid, String message ,String judgeState) {

        //到session中查找已连接的用户
        if (sessionPool.containsKey(userid)) {

            Session session = sessionPool.get(userid);

            //如果存在则判断有没有开启连接
            if (session != null && session.isOpen()) {
                System.out.println(userid+"还在连接中");

                if("961004".equals(judgeState)){
                    //返回前端,表明用户处于在线状态
                    return "960000" ;
                }
                System.out.println("=============>" + message);
                session.getAsyncRemote().sendText(message);
                return "20201";
            } else {
                if("961004".equals(judgeState)){
                    //返回前端,表明用户处于离线状态
                    return "964041" ;
                }
                return "404041";
            }

        }else if ("961004".equals(judgeState)){
            //返回前端,表明用户处于离线状态
            return "964041" ;
        }
        //不存在用户连接
        return "404041";

    }


}



*/
